/*! \page MO_matrixDoc Molecular Orbital calculator

Keywords: CUTOFF_MO, CCUTOFF_MO, STANDARD_MO, BLAS_MO, BASFUNC_MO,
CBASFUNC_MO and MO_1D

\section description Description

There are several plugins that calculate molecular orbitals.  The main 
one, which should usually be used, is the CUTOFF_MO, which takes advantage
of short-range basis functions and symmetry in the wave function to 
drastically reduce the computation time, at least by a factor of N, in 
some cases a factor of N<sup>2</sup>. Its implementation for
complex-valued orbitals is CCUTOFF_MO. The STANDARD_MO calculates exactly
the wave function given in the input, which is useful for sanity checking
and wave functions like plane waves, where almost no coefficients are zero
and the basis range is infinite.  BLAS_MO is only usable if you compile
the BLAS linear algebra libraries into the code, and cuts off the basis
functions, but uses linear algebra routines to fill the molecular orbital
matrix.  This gives formal scaling as O(N<sup>2</sup>), but can be much
faster than CUTOFF_MO in some circumstances (especially on Itanium
processors). These all take the same input.

Above described plugins calculate molecular orbitals \f$ \phi \f$ as
linear combinations of basis functions \f$ b \f$,
\f$ \phi_i=\sum_j \alpha_{ij} b_j \f$. In certain situations, basis
functions themselves already are one-particle orbitals, for instance
plane waves in homogeneous electron gas. In these cases
\f$ \alpha_{ij}=\alpha_{ij} \f$ and it is more efficient (and
transparent) to completely drop the summation over <i>j</i>
completely. BASFUNC_MO/CBASFUNC_MO are implemented to take advantage of
this simplification. The former is for real-valued basis functions,
the latter for complex-valued.

MO_1D is a special MO evaluator for one-dimensional systems, and takes
special input (not documented at the moment, a version of it was used
to perform calculations published in Vagner et al.
<a href="http://dx.doi.org/10.1016/j.physe.2005.12.062">Physica E
<b>32</b>, 350 (2006)</a> ).

\section options Options

\subsection reqopt Required 

<table>
<tr> <td> <b>Option</b> <td> <b>Type</b> <td> <b>Description</b>
<tr> <td> ORBFILE  <td> String <td> A file containing the
orbitals. Its format is as follows
<ul>
<li> CUTOFF_MO, CCUTOFF_MO, STANDARD_MO and BLAS_MO: <br>
&nbsp;&nbsp;&nbsp;MO#&nbsp;&nbsp;&nbsp;AO#(for center)&nbsp;&nbsp;&nbsp;Center#&nbsp;&nbsp;&nbsp;Coeff# <br>
for all the MO's, then the keyword COEFFICIENTS, and a sequential
listing of all the values of the coefficients. These coefficients are
real numbers except for CCUTOFF_MO, in which case they are complex and
given in the form (float,float) .<br><br>
<li> BASFUNC_MO, CBASFUNC_MO: <br>
&nbsp;&nbsp;&nbsp;basis#(for center)&nbsp;&nbsp;&nbsp; Center#<br>
No coefficients are given as only links between basis functions and
molecular orbitals are performed in these orbital calculators.
</ul>

<tr> <td> NMO  <td> Integer <td> Number of molecular orbitals to read from the orb file.

<tr> <td> BASIS <td> Section <td> input for a \ref Basis_functionDoc .  Place as many of these as there are bases.

</table>

\subsection optopt Optional

<table>
<tr> <td> <b>Option</b> <td> <b>Type</b> <td> <b> Default </b> 
     <td> <b>Description</b>
<tr> <td> CENTERS  <td> Section <td> CENTERS {&nbsp;USEATOMS&nbsp;} <td> input
     for a \subpage CenterDoc
<tr> <td> MAGNIFY <td> Float <td> 1.0 <td> An overall factor, by which
     each of the orbitals is multiplied. Values <>1.0 can supress
     instabilities in Slater determinant caused by round-off errors
     than can occur for large number of particles.
</table>

\subsection expopt Experimental 

<table>
<tr> <td> <b>Option</b> <td> <b>Type</b> 
     <td> <b>Description</b>
<tr> <td> OLDSOFILE  <td> String <td> (only CUTOFF_MO, STANDARD_MO and
     BLAS_MO) Read a basis function from an SO file from Lubos's qmc
     program.  This overwrites a gaussian basis input, and is not
     robust enough to be useful except for debugging purposes.
</table>


*/
